#include <iostream>
#include <cstring>
using namespace std;
int t;
int n;
struct node{
	long long t,d,l;
};

string s;
const int N=15;
bool st[N];
node a[N];
bool dfs(int pos)
{
	if(pos>=n)
	{
	   	long long sum=0;
		for(int i=0;i<s.size();i++)
      {
      	if(sum>a[s[i]-'0'].t+a[s[i]-'0'].d)
      	{
      		return false;
		   }
      	sum=max(sum,a[s[i]-'0'].t);
      	sum+=a[s[i]-'0'].l;
		}	
	return true;
   }
	for(int i=1;i<=n;i++)
	{
		if(st[i])continue;
	   st[i]=true;
	   s+=to_string(i);
		if(dfs(pos+1))
		return true;
		
	   s.pop_back();
	   st[i]=false;
   }
   return false;
}

int main()
{
	cin>>t;
	while(t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i].t>>a[i].d>>a[i].l;
		}
		if(dfs(0))
		cout<<"YES"<<endl;
		else
		cout<<"NO"<<endl;
      s.clear();
      memset(st,0,sizeof st);
	}
	return 0;
}
